<TagAttribute("light","ligh","????","????",3,352)>
Public Class LIGHT_TAG
Inherits HaloTag
Public Const Extension as String = "light"
Public Const FourCC as String = "ligh"
Public Const ParentFourCC as String = "????"
Public Const GrandParentFourCC as String = "????"
Public Const [Version] as Short = 3
Public Const HeaderLength as Integer = 352

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags as Integer

''' <summary>
''' the size and shape of the light
''' </summary>
#Region "SHAPE"

''' <summary>
''' the radius where illumination is zero. (lens flare only if this is 0)
''' </summary>
<TagField("radius", 1, 0)>
Public radius as Single

''' <summary>
''' how the radius changes with external scale
''' </summary>
<TagField("radius modifer", 2, 1)>
Public radius_modifer as Single()

''' <summary>
''' the angle at which the light begins to fade.
''' </summary>
<TagField("falloff angle", 1, 0)>
Public falloff_angle as Single

''' <summary>
''' the angle at which the illumination is zero.
''' </summary>
<TagField("cutoff angle", 1, 0)>
Public cutoff_angle as Single

''' <summary>
''' 
''' </summary>
<TagField("lens flare only radius", 1, 0)>
Public lens_flare_only_radius as Single

''' <summary>
''' 
''' </summary>
<TagField("", 24, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
#End Region
#Region "COLOR"

''' <summary>
''' 
''' </summary>
<TagField("interpolation flags", 1, 20)>
Public interpolation_flags as Integer

''' <summary>
''' 
''' </summary>
<TagField("color lower bound", 4, 3)>
Public color_lower_bound as Single()

''' <summary>
''' 
''' </summary>
<TagField("color upper bound", 4, 3)>
Public color_upper_bound as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_1 as Byte()

''' <summary>
''' the gel map tints the light per-pixel of cube map
''' </summary>
#End Region
#Region "GEL"

''' <summary>
''' used for diffuse and specular light
''' </summary>
<TagField("primary cube map", 16, 10)>
Public primary_cube_map as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_2 as Byte()

''' <summary>
''' a function to control texture animation
''' </summary>
<TagField("texture animation function", 1, 17)>
Public texture_animation_function as Short

''' <summary>
''' time between repeats
''' </summary>
<TagField("texture animation period:seconds", 1, 0)>
Public texture_animation_period as Single

''' <summary>
''' used for specular light
''' </summary>
<TagField("secondary cube map", 16, 10)>
Public secondary_cube_map as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_3 as Byte()

''' <summary>
''' a function to control rotation of the gel in yaw
''' </summary>
<TagField("yaw function", 1, 17)>
Public yaw_function as Short

''' <summary>
''' time between repeats
''' </summary>
<TagField("yaw period:seconds", 1, 0)>
Public yaw_period as Single

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_4 as Byte()

''' <summary>
''' a function to control rotation of the gel in roll
''' </summary>
<TagField("roll function", 1, 17)>
Public roll_function as Short

''' <summary>
''' time between repeats
''' </summary>
<TagField("roll period:seconds", 1, 0)>
Public roll_period as Single

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_5 as Byte()

''' <summary>
''' a function to control rotation of the gel in pitch
''' </summary>
<TagField("pitch function", 1, 17)>
Public pitch_function as Short

''' <summary>
''' time between repeats
''' </summary>
<TagField("pitch period:seconds", 1, 0)>
Public pitch_period as Single

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_6 as Byte()

''' <summary>
''' optional lens flare associated with this light
''' </summary>
#End Region
#Region "LENS FLARE"

''' <summary>
''' 
''' </summary>
<TagField("lens flare", 16, 10)>
Public lens_flare as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 24, -1)>
Public padding_7 as Byte()

''' <summary>
''' how the light affects the lightmaps (ignored for dynamic lights)
''' </summary>
#End Region
#Region "RADIOSITY"

''' <summary>
''' 
''' </summary>
<TagField("intensity", 1, 0)>
Public intensity as Single

''' <summary>
''' 
''' </summary>
<TagField("color", 3, 2)>
Public color as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_8 as Byte()

''' <summary>
''' if the light is created by an effect, it will animate itself as follows
''' </summary>
#End Region
#Region "EFFECT PARAMETERS"

''' <summary>
''' the light will last this long when created by an effect
''' </summary>
<TagField("duration:seconds", 1, 0)>
Public duration as Single

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_9 as Byte()

''' <summary>
''' the scale of the light will diminish over time according to this function
''' </summary>
<TagField("falloff function", 1, 17)>
Public falloff_function as Short

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_10 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 92, -1)>
Public padding_11 as Byte()
#End Region

End Class
